package co.edu.udea.xyz.bl;

import java.util.List;

import co.edu.udea.xyz.dto.Persona;
import co.edu.udea.xyz.util.exception.BLInversionesException;
import co.edu.udea.xyz.util.exception.XYZException;

public interface PersonaService {

	/**
	 * Metodo para guardar una nueva Persona en la Base de Datos.
	 * @param cedula
	 * @param nombre
	 * @param apellidos
	 * @param email
	 * @param telefono
	 * @param celular parametro nulleable.
	 * @return
	 * @throws BLInversionesException
	 * @throws XYZException 
	 */
	public void guardarPersona(int cedula, String nombre, String apellidos, String email, 
			String telefono, String celular) throws BLInversionesException, XYZException;
	
	/**
	 * Metodo para actualizar los datos de un registro existente en la Base de Datos.
	 * @param cedula
	 * @param nombre
	 * @param apellidos
	 * @param email
	 * @param telefono
	 * @param celular
	 * @throws BLInversionesException
	 */
	public void actualizarPersona(int cedula, String nombre, String apellidos, String email, 
			String telefono, String celular) throws BLInversionesException, XYZException;

	/**
	 * Metodo que obtiene una persona de la Base de Datos por medio de su cedula.
	 * @param cedula
	 * @return Persona
	 * @throws BLInversionesException
	 * @throws XYZException
	 */
	public Persona obtenerPersona(int cedula) throws BLInversionesException, XYZException;
	
	/**
	 * Metodo que elimina una persona de la base de datos.
	 * @param cedula
	 * @throws BLInversionesException
	 * @throws XYZException
	 */
	public void eliminarPersona(String cedula)throws BLInversionesException, XYZException;
	
	/**
	 * Metodo que obtiene la lista de personas de la Base de Datos.
	 * @return Lista de Personas
	 * @throws BLInversionesException
	 * @throws XYZException
	 */
	public List<Persona> obtenerListaPersonas() throws BLInversionesException, XYZException;
	
	
	
}
